/**
 * 通用辅助函数
 */

/**
 * 延迟执行
 * @param ms 延迟时间（毫秒）
 * @returns Promise
 */
export const delay = (ms: number): Promise<void> => {
  return new Promise(resolve => setTimeout(resolve, ms));
};

/**
 * 格式化金额
 * @param amount 金额数值
 * @param currency 货币符号
 * @returns 格式化后的金额字符串
 */
export const formatCurrency = (amount: number, currency: string = '¥'): string => {
  return `${currency}${amount.toFixed(2)}`;
};

/**
 * 截断文本
 * @param text 原始文本
 * @param length 最大长度
 * @param suffix 截断后的后缀
 * @returns 截断后的文本
 */
export const truncateText = (text: string, length: number, suffix: string = '...'): string => {
  if (text.length <= length) return text;
  return text.substring(0, length) + suffix;
};

/**
 * 获取随机ID
 * @returns 随机ID字符串
 */
export const getRandomId = (): string => {
  return Math.random().toString(36).substring(2, 15);
};

/**
 * 深度合并对象
 * @param target 目标对象
 * @param source 源对象
 * @returns 合并后的对象
 */
export const deepMerge = (target: any, source: any): any => {
  const result = { ...target };
  
  for (const key in source) {
    if (source[key] instanceof Object && key in target && target[key] instanceof Object) {
      result[key] = deepMerge(target[key], source[key]);
    } else {
      result[key] = source[key];
    }
  }
  
  return result;
}; 